package com.tangerine.servicios;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import android.util.Log;
import com.tangerine.bd.DbHandlerPerfil;
import com.tangerine.bd.DbHandlerPreferencia;
import com.tangerine.entidades.Perfil;
import com.tangerine.entidades.Preferencia;

public class ServicioPerfil {
	
	static final String TAG ="ServicioPerfil";
	
	public List<Perfil> cargarListadoPerfil(){
		
		List<Perfil> listaPerfiles = new ArrayList<Perfil>();
		
		DbHandlerPerfil dhPerfil = new DbHandlerPerfil();
		try {
			listaPerfiles = dhPerfil.cargarPerfil();
		} catch (SQLException e) { 
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		dhPerfil = null;	
		return listaPerfiles;		
	}
	
	public void insertarPerfil(Preferencia auxPreferencia) {
		
		DbHandlerPerfil dhPerfil = new DbHandlerPerfil();
		DbHandlerPreferencia dhPreferencia = new DbHandlerPreferencia();
		int iMaximoIdPerfil = 0;
		int iMaximoIdPreferencia = 0;
		int iExistePreferencia = 0;

		Log.d(TAG,"onClick - AGREGAR PERFIL");
		
		//VALUES OF DEFAULT
		if(auxPreferencia.getValorDistancia() == 0)
			auxPreferencia.setValorDistancia((float) 1);
		if(auxPreferencia.getValorTiempo() == 0)
			auxPreferencia.setValorTiempo(4);
		
		Log.d(TAG,"DISTANCIA: "+ auxPreferencia.getValorDistancia());
		
		iExistePreferencia = 0;

		try {				
			iExistePreferencia = dhPreferencia.existePreferencia(auxPreferencia.getValorDistancia(), auxPreferencia.getValorTiempo());
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		Log.d(TAG,"EXISTE PREFERENCIA: "+ iExistePreferencia);
		
		if(iExistePreferencia == 0)
		{
			try {				
				iMaximoIdPerfil = dhPerfil.obtenerMaximoIdPerfil();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			/*Log.d(TAG,"MAX ID_PERFIL: "+ iMaximoIdPerfil);
			
			try {				
				iMaximoIdPreferencia = dhPreferencia.obtenerMaximoIdPreferencia();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}*/
			
			Log.d(TAG,"MAX ID_PREFERENCIA: "+ iMaximoIdPreferencia);
			
			//PK PERFIL - PREFERENCIA
			iMaximoIdPerfil++;
			//iMaximoIdPreferencia++;
			iMaximoIdPreferencia = iMaximoIdPerfil;
			
			Log.d(TAG,"SET ID_PERFIL: "+ iMaximoIdPerfil);
			Log.d(TAG,"SET ID_PREFERENCIA: "+ iMaximoIdPreferencia);
			
			//INSERT PREFERENCIA
			String szDescripcionPreferencia = "PERFIL " + String.valueOf(iMaximoIdPerfil) 
											+ " PREFERENCIA " + String.valueOf(iMaximoIdPreferencia);
			auxPreferencia.setIdPerfil(iMaximoIdPerfil);
			auxPreferencia.setIdPreferencia(iMaximoIdPreferencia);
			auxPreferencia.setSzDescripcion(szDescripcionPreferencia);
			
			try {				
				dhPreferencia.insertarPreferencia(auxPreferencia);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			Log.d(TAG,"INSERT PREFERENCIA OK");
			
			//INSERT PERFIL
			Perfil auxPerfil = new Perfil();
			String szDescripcionPerfil = "PERFIL " + String.valueOf(iMaximoIdPerfil);
			auxPerfil.setIdPerfil(iMaximoIdPerfil);
			auxPerfil.setDescripcion(szDescripcionPerfil);
			
			try {				
				dhPerfil.insertarPerfil(auxPerfil);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			Log.d(TAG,"INSERT PERFIL OK");
		}
		dhPreferencia = null;
		dhPerfil = null;
	}
	
	public void eliminarPerfil(Perfil auxPerfil) {
		
		DbHandlerPerfil dhPerfil = new DbHandlerPerfil();
		
		try {
			dhPerfil.eliminarPerfil(auxPerfil);	
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		DbHandlerPreferencia dhPreferencia = new DbHandlerPreferencia();
		Preferencia auxPreferencia = new Preferencia();
		auxPreferencia.setIdPerfil(auxPerfil.getIdPerfil());
		
		try {
			dhPreferencia.eliminarPreferencia(auxPreferencia);	
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		dhPerfil = null;
		dhPreferencia = null;
	}
}

